首页>代码>springMVC+Mybatis+Spring+Easyui+zTree+ueditor+highchart企业IT信息管理系统>/IT_M - 副本/src/com/gree/ssm/controller/ExportController.java
package com.gree.ssm.controller;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.gree.ssm.util.MyConverter;

/**
 * 导出highcharts图片
 * 
 * @author Administrator
 * 
 */
@Controller
@RequestMapping("export/")
public class ExportController {
	@RequestMapping("/open3D")
	public String open3D(Model model, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		// 页面转发
		return "3D";
	}
	
	// 导出函数
	@RequestMapping("/export")
	public void export(String filename, HttpServletRequest request,
			HttpServletResponse response, String type, String svg, float scale)
			throws Exception {

		/**
		 * 第二步:将svg代码保存为svg文件
		 */

		// 打印获取的参数,确保可以获取值且中文不会乱码,如果出现乱码,将Highcharts页面的编码设置为UTF-8
		System.out.println(type + "\n" + filename + "\n" + svg + "\n" + scale);

		// 获取项目的绝对路径
		@SuppressWarnings("deprecation")
		String WebRoot = request.getRealPath("") + "\\temp\\";
		File file = new File(WebRoot);
		// 判断文件夹是否存在,如果不存在则创建文件夹
		if (!file.exists()) {
			file.mkdirs();// 创建多级目录
			// file.mkdir();//创建目录
		}

		// SVG临时文件名
		String temp = WebRoot + System.currentTimeMillis()
				+ (int) (Math.random() * 1000) + ".svg";

		// 将svg代码写入到临时文件中,文件后缀的.svg
		File svgTempFile = new File(temp);
		// 写入文件,注意文件编码
		OutputStreamWriter svgFileOsw = new OutputStreamWriter(
				new FileOutputStream(svgTempFile), "UTF-8");
		svgFileOsw.write(svg);
		svgFileOsw.flush();
		svgFileOsw.close();

		/**
		 * 第三步:调用转换函数,生成目标文件
		 */
		MyConverter mc = new MyConverter();
		// 调用转换函数,返回目标文件名
		filename = mc.conver(temp, WebRoot, type);

		// 读取目标文件流,转换调用下载
		File resultFile = new File(WebRoot + filename);
		FileInputStream resultFileFi = new FileInputStream(resultFile);
		long l = resultFile.length();
		int k = 0;
		byte abyte0[] = new byte[65000];

		/**
		 * 第四步:调用浏览器下载
		 */

		// 调用下载
		response.setContentType("application/x-msdownload");
		response.setContentLength((int) l);
		response.setHeader("Content-Disposition", "attachment; filename="
				+ filename);
		while ((long) k < l) {
			int j;
			j = resultFileFi.read(abyte0, 0, 65000);
			k += j;
			response.getOutputStream().write(abyte0, 0, j);
		}
		resultFileFi.close();

		// 转换成功后,删除临时文件
		svgTempFile.delete();
		resultFile.delete();
	}
}
最近下载更多
zhaoyangwfd  LV17 2022年1月20日
wanglinddad  LV55 2022年1月19日
543666826  LV33 2021年11月18日
2231788897  LV6 2021年10月20日
lewis365  LV2 2021年8月22日
ericxu1116  LV24 2021年6月7日
幸运疯子  LV13 2021年5月16日
小屁孩  LV7 2021年4月11日
skipple3  LV39 2020年11月26日
ddqddqddq  LV14 2020年9月5日
最近浏览更多
李俊雄  LV3 5月8日
educationAAA  LV6 5月2日
wahaha9zz 4月25日
暂无贡献等级
xiaozhi丶  LV14 4月10日
爱丽淇  LV5 3月13日
pangzhihui  LV13 3月1日
qq1633  LV6 2月19日
heshao  LV2 2月7日
Gin19960217  LV4 1月12日
zhangjilu  LV18 1月7日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友